<?php

namespace app\api\controller;
use think\Request;
use think\Db;
// use app\api\model\WxappPage;

/**
 * 跳转广告跳转收集控制器
 * Class Index
 * @package app\api\controller
 */
class Ad extends Controller
{
    // 记录跳转广告打开的日志
    public function index()
    {
        // 页面元素
        $data = $this->request->param();
        $data['date'] = time();
        unset($data['token'],$data['wxapp_id']);
        
        // 当前用户的信息
        $user = $this->getUser();
        $data['user_id'] = $user['user_id'];
        
        // 事务
        $e = Db::transaction(function() use($data) {
        	// 当天0点时间戳和23:59:59的时间戳
			$year	= date("Y");
			$month	= date("m");
			$day	= date("d");
			$start	= mktime(0,0,0,$month,$day,$year);//当天开始时间戳
			$end	= mktime(23,59,59,$month,$day,$year);//当天结束时间戳
        	
        	// 按天统计 判断当天广告记录数据是否存在
        	$count = db('ads_jump')->where('jump_ads_appid',$data['jump_ads_appid'])->where('date','between time',[$start,$end])->count();
        	// 如果当前的广告存在
        	if($count > 0){
        		// 广告存在总数+1
        		db('ads_jump')->where('jump_ads_appid', $data['jump_ads_appid'])->where('date','between time',[$start,$end])->setInc('total');
        		// 广告存在，根据今天的日期，查询是否已经记录过
        	
				$number = db('ads_jump_user')->where('user_id',$data['user_id'])->where('date','between time',[$start,$end])->count();
				// 同一个用户同一天只记录一次
				if($number == 0){
					db('ads_jump')->where('jump_ads_appid', $data['jump_ads_appid'])->where('date','between time',[$start,$end])->setInc('number');
				}
        	}else{
        		// 记录广告
        		db('ads_jump')->insert([
        			'user_id'=>$data['user_id'],
        			'jump_ads_appid'=>$data['jump_ads_appid'],
        			'jump_ads_name'=>$data['jump_ads_name'],
        			'total'=>1,
        			'number'=>1,
        			'date'=>$data['date']
        		]);
        	}
        	// 记录用户
        	db('ads_jump_user')->insert([
        		'jump_ads_appid'=>$data['jump_ads_appid'],
        		'user_id'=>$data['user_id'],
        		'date'=>$data['date']
        	]);
        	return null;
        });
    	$res = (is_null($e)) ? 'ok' : 'fail';
        // 记录广告日志
        return $this->renderSuccess(array_merge($data,['result'=>$res]));
    }
}
